home *** CD-ROM | disk | FTP | other *** search
/ BBS in a Box 7 / BBS in a Box - Macintosh - Volume VII (BBS in a Box) (January 1993).iso / Files / Hyper / Me-Mz / MiBalloonoid 1.0.cpt / MiBalloonoid 1.0 / MiBalloonoid / background_4346.xml next >
Extensible Markup Language  |  1991-05-06  |  35KB  |  412 lines

  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE background PUBLIC "-//Apple, Inc.//DTD background V 2.0//EN" "" >
  3. <background>
  4.     <id>4346</id>
  5.     <filler1>0</filler1>
  6.     <bitmap>BMAP_4532.pbm</bitmap>
  7.     <cantDelete> <true /> </cantDelete>
  8.     <showPict> <true /> </showPict>
  9.     <dontSearch> <false /> </dontSearch>
  10.     <link rel="stylesheet" type="text/css" href="stylesheet_3274.css" />
  11.     <part>
  12.         <id>79</id>
  13.         <type>button</type>
  14.         <visible> <true /> </visible>
  15.         <reserved5> 0 </reserved5>
  16.         <reserved4> 0 </reserved4>
  17.         <reserved3> 0 </reserved3>
  18.         <reserved2> 0 </reserved2>
  19.         <reserved1> 0 </reserved1>
  20.         <enabled> <true /> </enabled>
  21.         <rect>
  22.             <left>33</left>
  23.             <top>54</top>
  24.             <right>45</right>
  25.             <bottom>66</bottom>
  26.         </rect>
  27.         <style>transparent</style>
  28.         <showName> <false /> </showName>
  29.         <highlight> <false /> </highlight>
  30.         <autoHighlight> <false /> </autoHighlight>
  31.         <sharedHighlight> <true /> </sharedHighlight>
  32.         <family>0</family>
  33.         <titleWidth>0</titleWidth>
  34.         <icon>0</icon>
  35.         <textAlign>center</textAlign>
  36.         <font>Chicago</font>
  37.         <textSize>12</textSize>
  38.         <textStyle>plain</textStyle>
  39.         <name>HelpLoc</name>
  40.         <script></script>
  41.     </part>
  42.     <part>
  43.         <id>83</id>
  44.         <type>field</type>
  45.         <visible> <true /> </visible>
  46.         <dontWrap> <false /> </dontWrap>
  47.         <dontSearch> <false /> </dontSearch>
  48.         <sharedText> <true /> </sharedText>
  49.         <fixedLineHeight> <false /> </fixedLineHeight>
  50.         <autoTab> <false /> </autoTab>
  51.         <lockText> <false /> </lockText>
  52.         <rect>
  53.             <left>45</left>
  54.             <top>97</top>
  55.             <right>478</right>
  56.             <bottom>291</bottom>
  57.         </rect>
  58.         <style>scrolling</style>
  59.         <autoSelect> <false /> </autoSelect>
  60.         <showLines> <false /> </showLines>
  61.         <wideMargins> <true /> </wideMargins>
  62.         <multipleLines> <false /> </multipleLines>
  63.         <reservedFamily> 0 </reservedFamily>
  64.         <titleWidth>0</titleWidth>
  65.         <icon>0</icon>
  66.         <textAlign>left</textAlign>
  67.         <font>Geneva</font>
  68.         <textSize>9</textSize>
  69.         <textStyle>plain</textStyle>
  70.         <textHeight>12</textHeight>
  71.         <name>Instructions</name>
  72.         <script></script>
  73.     </part>
  74.     <part>
  75.         <id>84</id>
  76.         <type>button</type>
  77.         <visible> <true /> </visible>
  78.         <reserved5> 0 </reserved5>
  79.         <reserved4> 0 </reserved4>
  80.         <reserved3> 0 </reserved3>
  81.         <reserved2> 0 </reserved2>
  82.         <reserved1> 0 </reserved1>
  83.         <enabled> <true /> </enabled>
  84.         <rect>
  85.             <left>66</left>
  86.             <top>54</top>
  87.             <right>102</right>
  88.             <bottom>91</bottom>
  89.         </rect>
  90.         <style>transparent</style>
  91.         <showName> <false /> </showName>
  92.         <highlight> <false /> </highlight>
  93.         <autoHighlight> <false /> </autoHighlight>
  94.         <sharedHighlight> <true /> </sharedHighlight>
  95.         <family>0</family>
  96.         <titleWidth>0</titleWidth>
  97.         <icon>13745</icon>
  98.         <textAlign>center</textAlign>
  99.         <font>Chicago</font>
  100.         <textSize>12</textSize>
  101.         <textStyle>plain</textStyle>
  102.         <name>Home</name>
  103.         <script>on mouseUpgo homeend mouseUp</script>
  104.     </part>
  105.     <part>
  106.         <id>85</id>
  107.         <type>button</type>
  108.         <visible> <true /> </visible>
  109.         <reserved5> 0 </reserved5>
  110.         <reserved4> 0 </reserved4>
  111.         <reserved3> 0 </reserved3>
  112.         <reserved2> 0 </reserved2>
  113.         <reserved1> 0 </reserved1>
  114.         <enabled> <true /> </enabled>
  115.         <rect>
  116.             <left>446</left>
  117.             <top>54</top>
  118.             <right>482</right>
  119.             <bottom>91</bottom>
  120.         </rect>
  121.         <style>transparent</style>
  122.         <showName> <false /> </showName>
  123.         <highlight> <false /> </highlight>
  124.         <autoHighlight> <true /> </autoHighlight>
  125.         <sharedHighlight> <true /> </sharedHighlight>
  126.         <family>0</family>
  127.         <titleWidth>0</titleWidth>
  128.         <icon>1007</icon>
  129.         <textAlign>center</textAlign>
  130.         <font>Chicago</font>
  131.         <textSize>12</textSize>
  132.         <textStyle>plain</textStyle>
  133.         <name>PrintDesc</name>
  134.         <script>on mouseUpanswer "Print MiBalloonoid description?" with "Cancel" or "OK"if it is "OK" thenprint field instructionsend ifend mouseUp</script>
  135.     </part>
  136.     <part>
  137.         <id>87</id>
  138.         <type>button</type>
  139.         <visible> <true /> </visible>
  140.         <reserved5> 0 </reserved5>
  141.         <reserved4> 0 </reserved4>
  142.         <reserved3> 0 </reserved3>
  143.         <reserved2> 0 </reserved2>
  144.         <reserved1> 0 </reserved1>
  145.         <enabled> <true /> </enabled>
  146.         <rect>
  147.             <left>406</left>
  148.             <top>56</top>
  149.             <right>438</right>
  150.             <bottom>90</bottom>
  151.         </rect>
  152.         <style>transparent</style>
  153.         <showName> <false /> </showName>
  154.         <highlight> <false /> </highlight>
  155.         <autoHighlight> <true /> </autoHighlight>
  156.         <sharedHighlight> <true /> </sharedHighlight>
  157.         <family>0</family>
  158.         <titleWidth>0</titleWidth>
  159.         <icon>16344</icon>
  160.         <textAlign>center</textAlign>
  161.         <font>Chicago</font>
  162.         <textSize>12</textSize>
  163.         <textStyle>plain</textStyle>
  164.         <name>PictExample</name>
  165.         <script>on mouseUpAnswer "This button has a PICT for a help message!"end mouseUp</script>
  166.     </part>
  167.     <part>
  168.         <id>88</id>
  169.         <type>field</type>
  170.         <visible> <true /> </visible>
  171.         <dontWrap> <false /> </dontWrap>
  172.         <dontSearch> <false /> </dontSearch>
  173.         <sharedText> <true /> </sharedText>
  174.         <fixedLineHeight> <false /> </fixedLineHeight>
  175.         <autoTab> <false /> </autoTab>
  176.         <lockText> <false /> </lockText>
  177.         <rect>
  178.             <left>349</left>
  179.             <top>62</top>
  180.             <right>372</right>
  181.             <bottom>76</bottom>
  182.         </rect>
  183.         <style>transparent</style>
  184.         <autoSelect> <false /> </autoSelect>
  185.         <showLines> <false /> </showLines>
  186.         <wideMargins> <false /> </wideMargins>
  187.         <multipleLines> <false /> </multipleLines>
  188.         <reservedFamily> 0 </reservedFamily>
  189.         <titleWidth>0</titleWidth>
  190.         <icon>0</icon>
  191.         <textAlign>left</textAlign>
  192.         <font>Geneva</font>
  193.         <textSize>12</textSize>
  194.         <textStyle>plain</textStyle>
  195.         <textHeight>16</textHeight>
  196.         <name>version</name>
  197.         <script></script>
  198.     </part>
  199.     <part>
  200.         <id>89</id>
  201.         <type>field</type>
  202.         <visible> <true /> </visible>
  203.         <dontWrap> <false /> </dontWrap>
  204.         <dontSearch> <false /> </dontSearch>
  205.         <sharedText> <true /> </sharedText>
  206.         <fixedLineHeight> <false /> </fixedLineHeight>
  207.         <autoTab> <false /> </autoTab>
  208.         <lockText> <false /> </lockText>
  209.         <rect>
  210.             <left>114</left>
  211.             <top>297</top>
  212.             <right>206</right>
  213.             <bottom>313</bottom>
  214.         </rect>
  215.         <style>rectangle</style>
  216.         <autoSelect> <false /> </autoSelect>
  217.         <showLines> <false /> </showLines>
  218.         <wideMargins> <false /> </wideMargins>
  219.         <multipleLines> <false /> </multipleLines>
  220.         <reservedFamily> 0 </reservedFamily>
  221.         <titleWidth>0</titleWidth>
  222.         <icon>0</icon>
  223.         <textAlign>left</textAlign>
  224.         <font>Geneva</font>
  225.         <textSize>9</textSize>
  226.         <textStyle>plain</textStyle>
  227.         <textHeight>12</textHeight>
  228.         <name></name>
  229.         <script></script>
  230.     </part>
  231.     <part>
  232.         <id>90</id>
  233.         <type>field</type>
  234.         <visible> <true /> </visible>
  235.         <dontWrap> <false /> </dontWrap>
  236.         <dontSearch> <false /> </dontSearch>
  237.         <sharedText> <true /> </sharedText>
  238.         <fixedLineHeight> <false /> </fixedLineHeight>
  239.         <autoTab> <false /> </autoTab>
  240.         <lockText> <false /> </lockText>
  241.         <rect>
  242.             <left>270</left>
  243.             <top>297</top>
  244.             <right>356</right>
  245.             <bottom>313</bottom>
  246.         </rect>
  247.         <style>rectangle</style>
  248.         <autoSelect> <false /> </autoSelect>
  249.         <showLines> <false /> </showLines>
  250.         <wideMargins> <false /> </wideMargins>
  251.         <multipleLines> <false /> </multipleLines>
  252.         <reservedFamily> 0 </reservedFamily>
  253.         <titleWidth>0</titleWidth>
  254.         <icon>0</icon>
  255.         <textAlign>left</textAlign>
  256.         <font>Geneva</font>
  257.         <textSize>9</textSize>
  258.         <textStyle>plain</textStyle>
  259.         <textHeight>12</textHeight>
  260.         <name></name>
  261.         <script></script>
  262.     </part>
  263.     <part>
  264.         <id>91</id>
  265.         <type>field</type>
  266.         <visible> <true /> </visible>
  267.         <dontWrap> <false /> </dontWrap>
  268.         <dontSearch> <false /> </dontSearch>
  269.         <sharedText> <false /> </sharedText>
  270.         <fixedLineHeight> <false /> </fixedLineHeight>
  271.         <autoTab> <false /> </autoTab>
  272.         <lockText> <false /> </lockText>
  273.         <rect>
  274.             <left>205</left>
  275.             <top>297</top>
  276.             <right>236</right>
  277.             <bottom>313</bottom>
  278.         </rect>
  279.         <style>rectangle</style>
  280.         <autoSelect> <false /> </autoSelect>
  281.         <showLines> <false /> </showLines>
  282.         <wideMargins> <false /> </wideMargins>
  283.         <multipleLines> <false /> </multipleLines>
  284.         <reservedFamily> 0 </reservedFamily>
  285.         <titleWidth>0</titleWidth>
  286.         <icon>0</icon>
  287.         <textAlign>left</textAlign>
  288.         <font>Geneva</font>
  289.         <textSize>9</textSize>
  290.         <textStyle>plain</textStyle>
  291.         <textHeight>12</textHeight>
  292.         <name>rbf</name>
  293.         <script></script>
  294.     </part>
  295.     <part>
  296.         <id>92</id>
  297.         <type>field</type>
  298.         <visible> <true /> </visible>
  299.         <dontWrap> <false /> </dontWrap>
  300.         <dontSearch> <false /> </dontSearch>
  301.         <sharedText> <false /> </sharedText>
  302.         <fixedLineHeight> <false /> </fixedLineHeight>
  303.         <autoTab> <false /> </autoTab>
  304.         <lockText> <false /> </lockText>
  305.         <rect>
  306.             <left>355</left>
  307.             <top>297</top>
  308.             <right>386</right>
  309.             <bottom>313</bottom>
  310.         </rect>
  311.         <style>rectangle</style>
  312.         <autoSelect> <false /> </autoSelect>
  313.         <showLines> <false /> </showLines>
  314.         <wideMargins> <false /> </wideMargins>
  315.         <multipleLines> <false /> </multipleLines>
  316.         <reservedFamily> 0 </reservedFamily>
  317.         <titleWidth>0</titleWidth>
  318.         <icon>0</icon>
  319.         <textAlign>left</textAlign>
  320.         <font>Geneva</font>
  321.         <textSize>9</textSize>
  322.         <textStyle>plain</textStyle>
  323.         <textHeight>12</textHeight>
  324.         <name>rbof</name>
  325.         <script></script>
  326.     </part>
  327.     <part>
  328.         <id>93</id>
  329.         <type>button</type>
  330.         <visible> <true /> </visible>
  331.         <reserved5> 0 </reserved5>
  332.         <reserved4> 0 </reserved4>
  333.         <reserved3> 0 </reserved3>
  334.         <reserved2> 0 </reserved2>
  335.         <reserved1> 0 </reserved1>
  336.         <enabled> <true /> </enabled>
  337.         <rect>
  338.             <left>114</left>
  339.             <top>297</top>
  340.             <right>236</right>
  341.             <bottom>313</bottom>
  342.         </rect>
  343.         <style>transparent</style>
  344.         <showName> <false /> </showName>
  345.         <highlight> <false /> </highlight>
  346.         <autoHighlight> <false /> </autoHighlight>
  347.         <sharedHighlight> <true /> </sharedHighlight>
  348.         <family>0</family>
  349.         <titleWidth>0</titleWidth>
  350.         <icon>0</icon>
  351.         <textAlign>center</textAlign>
  352.         <font>Chicago</font>
  353.         <textSize>12</textSize>
  354.         <textStyle>plain</textStyle>
  355.         <name>rbarea</name>
  356.         <script></script>
  357.     </part>
  358.     <part>
  359.         <id>94</id>
  360.         <type>button</type>
  361.         <visible> <true /> </visible>
  362.         <reserved5> 0 </reserved5>
  363.         <reserved4> 0 </reserved4>
  364.         <reserved3> 0 </reserved3>
  365.         <reserved2> 0 </reserved2>
  366.         <reserved1> 0 </reserved1>
  367.         <enabled> <true /> </enabled>
  368.         <rect>
  369.             <left>270</left>
  370.             <top>297</top>
  371.             <right>386</right>
  372.             <bottom>313</bottom>
  373.         </rect>
  374.         <style>transparent</style>
  375.         <showName> <false /> </showName>
  376.         <highlight> <false /> </highlight>
  377.         <autoHighlight> <false /> </autoHighlight>
  378.         <sharedHighlight> <true /> </sharedHighlight>
  379.         <family>0</family>
  380.         <titleWidth>0</titleWidth>
  381.         <icon>0</icon>
  382.         <textAlign>center</textAlign>
  383.         <font>Chicago</font>
  384.         <textSize>12</textSize>
  385.         <textStyle>plain</textStyle>
  386.         <name>rboarea</name>
  387.         <script></script>
  388.     </part>
  389.     <content>
  390.         <layer>background</layer>
  391.         <id>83</id>
  392.         <text><span class="style26">iBalloonoid is an XCMD for adding balloon help of System 7 to any HyperCard¬Æ 2.0 stack.  It also works with System 6 to provide a consistent user interface when users update to the "Big Bang".  MiBalloonoid can provide help for buttons, fields and menu items and consists of an XCMD (MiBalloonoid), an XFCN (hasMiRealBalloons) and some scripts.  It supports PICT, TEXT and STR messages (but not STR#).  (Menu help messages can use STR# resources under System 7, since the help messages are handled directly by the help manager.  They should be used if the stack will only be used with System 7.)</span><span class="style27">Benefits of MiBalloonoid:</span><span class="style26"> ‚Ä¢  Gives the user a consistent interface when using System 7. ‚Ä¢  Provides compatibility with both System 6 and 7. ‚Ä¢  Hidden help fields that are shown when the cursor travels over an item are not    necessary.  If you re-arrange your layout, you also have to re-arrange the help    messages.  The messages of MiBalloonoid appear where the item is, even if it's    moved around and can be used with menu items. ‚Ä¢  Since the help messages of MiBalloonoid are in resources, they can    be easily localized and modified.  Also, the balloon resources are stored in the     stack - not HyperCard, so stacks that use MiBalloonoid won't conflict     with each other. ‚Ä¢  It should work fine with any System 6 "Patched Balloons" (System 7 balloons    that have been patched into System 6.)</span><span class="style27">Requirements:</span><span class="style26">‚Ä¢ To use MiBalloonoid in a stack requires HyperCard 2.0 and System 6.05.‚Ä¢ To create balloons for your stack, you should have:  System 7 (for testing),   BalloonWriter (works with System 6 or 7), ResEdit, Rez resource compiler,  "BalloonTypes.r" for Rez, Inside Mac VI and HyperCard 2.0.  (The current   version of BalloonWriter cannot create balloon resources directly into a file -  although it has the feature, it doesn't seem to work.  If a future version does  work, just install the balloons into a fake application and use ResEdit to copy  them into your stack.)</span><span class="style27">Button and Field Balloons:</span><span class="style26">When the mouse pointer moves into a field or button area, it sends a message to the XCMD to display the given message or picture.  The mouse pointer is also changed into a "balloon" or "popped balloon" depending on if there is help for a feature or not.  Since all this is controlled through scripts, it can be customized to fit your needs.To create the message for buttons and fields, use ResEdit¬Æ to create the TEXT, STR or PICT resources and give them the same name as the button or field.  The correlation between a field or button and its help message is performed with a script, so you can use any naming convention you want.  For example, you might append "/HELP" to the end of your help resource names and have the script pass the name of the field with "/HELP" appended.</span><span class="style27">Menu Balloons:</span><span class="style26">To create the balloon messages for menus, you should use BalloonWriter.  Note that the menus you create with HyperTalk are non-resource menus, which the current version of BalloonWriter cannot create balloon messages for.  However, you can use BalloonWriter to create messages for the "standard" menus (File, Edit, About, etc.) - as long as they are not deleted from the menu bar.  For non-resource menus, use BalloonWriter to create them manually (custom balloons).  See the BalloonWriter notes at the end for instructions.When used with System 7, MiBalloonoid installs a patch to renumber the help resource (hmnu) for a particular menu to match the menu's ID.  It does this by getting the help resource by name, therefore the name of the help resource must match the name of the menu (BalloonWriter automatically sets the name of help resource to that of the menu).  This poses a slight problem if you have more than one set of menus for different cards, for instance a File menu that has different options from one card to the next.  If you create the File menu from scratch, this is no problem - you can slightly alter the name of the menu (such as "File" and "File " - with a space).  However, if you modify HyperCard's existing file menu, it will always have the same name and ID when it is used.  (You might be able to get around this be using "alternate" menu item names for each item, such as "Open File..." in one card and use "Open File... " (with a space) in the other card (both are the first item in the menu).  This will let you differentiate the help messages.  [These tricks haven't been tested, but should work.]Before you save the Rez file with BalloonWriter, set the option in the Preferences window to "Always create TEXT resources".  MiBalloonoid does not support "STR#" resources for menus under System 6.Once you "Rez" the balloon file created by BalloonWriter, you must go in with ResEdit and change the name of the TEXT resources to match their item names.  (Hopefully a future version of BalloonWriter will do this automatically.  Hint, Hint.)This is so they can be viewed under System 6.  If your stack will only work with System 7, you don't have to worry about renaming any resources.‚àÜ  WARNING:  BalloonWriter (1.0b12) creates a fake "styl" resource which will bomb if you open the corresponding TEXT resource with ResEdit.  You should delete all "styl" resources before editing them!</span><span class="style27">How it works:Opening MiBalloonoid:</span><span class="style26">To open MiBalloonoid when the user turns them on, use the following:</span><span class="style33"> MiBalloonoid <</span><span class="style34">windowname</span><span class="style33">>, <</span><span class="style34">windowLocation</span><span class="style33">></span><span class="style26">  <</span><span class="style28">windowname</span><span class="style26">> is the name of the balloonoid window, which </span><span class="style29">must</span><span class="style26"> </span><span class="style29">be </span><span class="style26"> "Balloonoid".  If you use a different name, the balloons for menus under   System 7 may not appear.  <</span><span class="style28">windowLocation</span><span class="style26">> is the location the window will briefly appear with a copyright message.  Use the same location that you'll use for the menu messages under System 6.  </span><span class="style29">The Result</span><span class="style26"> will contain an error number or 0 if the call was successful.  Possible error results are:<systemErr>        (< 0)  A system error occurred if the result is less than 0<paramErr>         (#1)   The wrong number of parameters were passed to the XCMD<noWindowErr> (#2)   Balloonoid window could not be created <sequenceErr>   (#3)   Sequence error - balloonmsg was set before balloonrect                                      (Only possible when setting the "balloonmsg")‚àÜ  </span><span class="style29">The Result</span><span class="style26"> will be set after each call to the XCMD.‚àÜ  If System 7 help balloons are off when MiBalloonoid is opened, they will be turned on.</span><span class="style27">Closing MiBalloonoid:</span><span class="style26">To turn the balloon system off, use the following:</span><span class="style33">    close window <</span><span class="style34">windowname</span><span class="style33">></span><span class="style26">  <</span><span class="style28">windowname</span><span class="style26">> is the name of the balloonoid window that is open.  ‚àÜ  Closing MiBalloonoid will also turn off System 7 balloons.</span><span class="style27">Displaying a Button/Field Help Message:</span><span class="style26">First you must tell MiBalloonoid the "hot area" for the help message.  This is the area the mouse pointer must remain inside for the help message to be displayed and is for use by the System 7 help manager.  When the mouse pointer leaves this area, the help manager will automatically remove the help balloon.</span><span class="style33">  set the balloonrect of window <windowname> to <therect></span><span class="style26"><</span><span class="style28">windowname</span><span class="style26">> is the name of the Balloonoid window<</span><span class="style28">therect</span><span class="style26">> is a rect of the hot spot (in local coordinates of the card)</span><span class="style33">   set the balloonmsg of window <</span><span class="style34">windowname</span><span class="style33">> to <</span><span class="style34">msgType</span><span class="style33">:</span><span class="style34">Name</span><span class="style33">></span><span class="style26">  <</span><span class="style28">windowname</span><span class="style26">> is the name of the Balloonoid window  <</span><span class="style28">msgType</span><span class="style26">:</span><span class="style28">Name</span><span class="style26">> is the help message type (4 characters) and the name of the help   resource.  For example, a TEXT help message would be specified as   "TEXThideBtn/Help" for a text message or "PICThideBtn/Help" for a PICT   resource.  The valid types are "PICT", "TEXT" and "STR ".  The name you pass   can be anything, but will usually be the name of the button or field.  You just   have to make sure that the name you give matches a help resource (TEXT, PICT   or STR).  ‚àÜ  </span><span class="style29">WARNING</span><span class="style26">:  If you fail to set the </span><span class="style28">balloonrect</span><span class="style26"> before setting the </span><span class="style28">balloonmsg</span><span class="style26">, Balloonoid will return a sequence error (#3) under System 7.  With System 6, this does not cause an error and can be used to keep the balloonoid window anchored in one location.  This is also helpful when providing help messages for menu items.  Refer to our "doHelp" handler in the stack script.  We never set the </span><span class="style28">balloonrect</span><span class="style26">, so under System 7 this will cause an error and not display the help message.  However, under System 6, the help message for the given menu item </span><span class="style30">will</span><span class="style26">  be displayed.‚àÜ  </span><span class="style29">NOTE</span><span class="style26">:  Since the balloon "hot areas" are set via the script and not permanently as would be the case if using BalloonWriter, you can use ResEdit to create the help messages.  Just create the TEXT, STR or PICT resources and change their names to match the field they describe.  This works great for fields or buttons that move or are hidden/shown under certain circumstances.</span><span class="style27">Displaying a Menu Help Message:</span><span class="style26">Displaying menu help messages is simple.  Refer to the "doHelp" handler in the stack script.  It works almost the same as setting the button/field message:</span><span class="style33">  set the balloonmsg of window <</span><span class="style34">windowname</span><span class="style33">> to <</span><span class="style34">msgType</span><span class="style33">:</span><span class="style34">Name</span><span class="style33">></span><span class="style26">   <</span><span class="style28">windowname</span><span class="style26">> is the name of the Balloonoid window  <</span><span class="style28">msgType</span><span class="style26">:</span><span class="style28">Name</span><span class="style26">> is used exactly as described under the button/field instructions.As noted above, we do not set the balloonrect so a message will not appear under System 7 with MiBalloonoid - it will be displayed with real balloons as the mouse pointer is moved over each menu or menu item (including disabled menu items).  Under System 6, the help message </span><span class="style30">will</span><span class="style26">  be displayed (if found).‚àÜ  </span><span class="style27">NOTES</span><span class="style26">:‚Ä¢  Because the help message is displayed before the menu item is executed under System 6, the user may not be able to read the entire message before it disappears.  The </span><span class="style28">Shift-key</span><span class="style26"> can be held down when selecting a menu item to display only the help message without executing it, as done in the doMenu handler in the stack script.  Since the help message is more "modal" under System 6, there is no way to display the help message for disabled items.‚Ä¢  If you use BalloonWriter to create the menu messages for your stack (which works great - most of the time).  Be careful when re-installing the balloon resources with Rez.  If you use MiBalloonoid to test them, later change the help messages and then re-install them, it's possible that there will be more than one "hmnu" resource with the same name because MiBalloonoid renumbers them!  You should delete all "hmnu" resources before reinstalling them.‚Ä¢  You can also create help messages for the entire menu, just create a help message for the menu title and it will be displayed when the mouse pointer moves over the menu title.Here's a Make statement used in MiBalloonoid:</span><span class="style33">"{HCStax}</span><span class="style26">MiBalloonoid</span><span class="style33">" ΔíΔí  "MiBalloons.r"Rez 'MiBalloons.r' -append -o "{HCStax}</span><span class="style26">MiBalloonoid</span><span class="style33">"</span><span class="style26">where "</span><span class="style33">MiBalloons.r</span><span class="style26">" is the Rez output file from BalloonWriter.  (The Rez file is included in the MiBalloonoid package so you can see how it works.)</span><span class="style27">Examples</span><span class="style26">:To see MiBalloonoid in action, simply select Show Balloons from the MiBalloonoid menu.  There are help messages for each field/button in this stack and the MiBalloonoid menu.Another example is our Version Tracker-PE (Personal Edition) stack for checking product version numbers.  To be released soon.</span><span class="style28">Companion XCMDs & XFCNs</span><span class="style26">:The following are related XFCN's for use with MiBalloonoid:</span><span class="style29">MiSetCursor</span><span class="style26"> XCMD sets the cursor to the one with the name you pass it.  Its format is:</span><span class="style33">    MiSetCursor <cursorname></span><span class="style26">    <cursorname> is the name of the cursor.If the cursor isn't found, the cursor is not changed.  No error codes are returned.  This XCMD is used to set the cursor behind HyperCard's back, so to speak.  If you call "Set Cursor to <cursorID>" with HyperCard, it will remember that the cursor has been changed and reset it as soon as the idle handler gets called again - causing the cursor to flash.By setting it "manually", HyperCard isn't aware of the change and the cursor remains the same!  The only time HyperCard will change the cursor is when moving the pointer over a scroll bar (when it will be changed to an arrow) or over an editable text field (where it will be changed to an insertion point).MiSetCursor is used with MiBalloonoid so the balloon cursor remains active.</span><span class="style29">hasMiRealBalloons</span><span class="style26"> is an XFCN that returns two items and is called as follows:</span><span class="style33">   put hasMiRealBalloons() into <container></span><span class="style26">     On return, the first item of the container is true if real balloons exist, false if not.  Item 2 will indicate if the real balloons are on or not (which will always be false if real balloons are not available).     Use this function to determine if the user turns the help balloons on or off with the System 7 help <?> menu so you can make the appropriate calls to MiBalloonoid.  Refer to the idle handler in the stack script to see how this is done.</span><span class="style27">Other notes on using MiBalloonoid:</span><span class="style26">‚Ä¢  Under System 6, the floating window is automatically sized according to the amount of text in the message or the size of the picture - similar to System 7 balloons.‚Ä¢  Since the stack cannot be compacted while an XCMD/XFCN is open, we check in the doMenu handler to make sure the balloons are off before the user can compact the stack.‚Ä¢  There is a blank button of the name "HelpLoc" next to the Home button above.  This is used to set the default location for menu help messages and the copyright notice.  You should have a similar button in your stack.‚Ä¢  You should setup a handler for receiving a "balloonsclosed" message that may be sent from the XCMD.  It will be called when the XCMD is closed, such as when you quit HyperCard or whenever a script closes the window (via "close window <windowname>"), allowing you to set flags or perform other house cleaning.‚Ä¢  There is a 2-pixel border around pictures so it is not against the window frame.  If this is a problem, it can be customized.  Also, the floating window is a black and white window, meaning that color pictures will not show their colors.  This can be changed too.‚Ä¢  If you change the name of a HyperCard menu item "About HyperCard", use it as your help resource name and not the name you replace it with!‚Ä¢  You should use the menu items "Show Balloons" and "Hide Balloons" in your menus so the user will not become confused under System 7.‚Ä¢  If the help message resource cannot be found, MiBalloonoid's window will be blank under System 6.  Under System 7, it will remove the currently displayed balloon (if there is one.)  The scripts in this stack will make sure a blank help message does not appear.‚Ä¢  Under System 7, any attempts to set the visible of MiBalloonoid's window to "true" are ignored.  This is so the scripts for System 6 won't affect it under System 7 and cause an unpleasant or confusing situations.‚Ä¢  You can use all the features of the help manager of System 7 for menus, such as having messages for check marks, disabled items or items with different names (Ex.: Show Balloons/Hide Balloons).  Under System 6, you can customize the script to get special messages for check marks or other marks, but you cannot display messages for a disabled item (unless you read the "DisableMenu" global).‚àÜ  The PICT resource is "detached" from the file, which shouldn't be a problem in most cases.  However, if the PICT is used by something else such as a PICT display XCMD, things can get messy!  This can be changed if needed.‚àÜ  If you use any of the special field/button messages in a field, button or background, be sure to "</span><span class="style29">pass</span><span class="style26">" them so they can be processed by the stack scripts!!  These include:  mouseEnter, mouseLeave, idle, doMenu and moveWindow.  Failure to pass these messages may result in the balloon window not being removed or displayed.‚àÜ  You should close MiBalloonoid whenever your stack is closed, suspended or when the user chooses "Hide Balloons" from the System 7 help menu (check this with hasMiRealBalloons in an idle handler).</span><span class="style27">BalloonWriter Notes:</span><span class="style26">Here are some of the problems that were encountered when using BalloonWriter (1.0b12):‚Ä¢  It creates a fake "styl" resource which will bomb if you open the corresponding TEXT resource with ResEdit.  You should delete all "styl" resources before editing the TEXT resources!‚Ä¢  Be sure to enable the "Always use TEXT resources" in the preferences window so it won't create STR# resources.‚Ä¢  If you duplicate balloons to create new help messages for menu items, be sure that the menu items are in sequence </span><span class="style29">before</span><span class="style26"> creating the "rez" file.  BalloonWriter will create the TEXT resources and hmnu resources in the order they are in the list - not by menu item.  Under System 7, this seems to cause the help message to be ignored.  It's easy to put them into the correct sequence, just select a balloon item, cut it and paste it back in.‚Ä¢  To create balloons for non-resource menus in BalloonWriter is almost impossible without beginning with some prefab balloons to work with.  Either create menu balloons for a resource menu, duplicate and modify them for the non-resource menu or, better yet, just use the file included with this stack.  (This is because BalloonWriter has problems with creating the menu name and the menu item balloons manually.)</span><span class="style27">How U Can Use It:</span><span class="style26">All the scripts, XCMDs and XFCNs in this stack are Copyright ¬© 1991 by James K. Miles.  ALL RIGHTS RESERVED.If you want to use MiBalloonoid or any of our other XCMDs/XFCNs in your stack, write for details and indicate the type of stack(s) they will be used in (free, shareware or commercial).</span><span class="style27">Addresses:</span><span class="style26">Mi ConceptsP.O. Box 8822Kentwood, MI  49508(616) 455-0100AppleLink: Mi.ConceptsCIS: [71121,3421]AOL: MiConceptsGEnie: jmiles</span><span class="style27">Distribution:</span><span class="style26">This unmodified demonstration stack may be distributed freely for evaluation purposes only.</span><span class="style27">Version Tracker:</span><span class="style26">Version Tracker is a new product version management system which will be available in three editions:  Personal, Administrator and Vendor.  The Person Edition is for users to check their systems to make sure they have the latest product versions.  The Administrator Edition is for system administrators to review a user's product list, system profile or to take a system wide product inventory.  The Vendor Edition is for developers and vendors for scanning product master disks so we can merge the latest version information into the master product list.‚àÜ  If you are a developer or vendor of a HyperCard stack, application, system extension or whatever, be sure to get your </span><span class="style29">free</span><span class="style26"> copy of the vendor's edition!  It will be on all the major on-line services and AppleLink.  Or send a disk with a self-addressed stamped envelope to our address above and we'll make a copy for you.</span><span class="style27">Other Stuff:</span><span class="style26">Some of our XCMDs/XFCNs include:  MiBalloonoid, hasMiRealBalloons, dispGIF, dispPicture, getMiFolderFiles, SFGetMiFile, MiSetFileTC, printMiOrderForm, printMiBigField, getMiComments, Eject-O, wickedFind, wickedPrint, HyperShot, and MugShotLite.We're also the creator of Mug Shot, Mug Shot Lite‚Ñ¢ and Mug Shot II.  They may not sound familiar, but the system profile information has probably been seen often by your customer support department.  Mug Shot Lite and Mug Shot II are now available for licensing and work great as a customer support tool and/or for beta testing your products!  Contact us for details.If you need industrial strength information, then you'll be interested in Mug Shot Deluxe‚Ñ¢!  If you're a hardware or software developer that would like to take advantage of MSD's features, a developer's kit for MSD will soon be available.  Write for details.  We're also looking for a few great products that can benefit from interacting with Mug Shot Deluxe, such as databases and network products.</span><span class="style27">Trademarks:</span><span class="style26">Mug Shot Lite and Mug Shot Deluxe are personal trademarks of James K. Miles.ResEdit is a registered trademark of Apple Computer, Inc.</span><span class="style27"></span><span class="style26">HyperCard is a registered trademark of Apple Computer, Inc. licensed to Claris Corporation.</span></text>
  393.     </content>
  394.     <content>
  395.         <layer>background</layer>
  396.         <id>88</id>
  397.         <text><span class="style1">.0</span></text>
  398.     </content>
  399.     <content>
  400.         <layer>background</layer>
  401.         <id>89</id>
  402.         <text>Has Real Balloons:</text>
  403.     </content>
  404.     <content>
  405.         <layer>background</layer>
  406.         <id>90</id>
  407.         <text>Real Balloons On:</text>
  408.     </content>
  409.     <name>MiBalloonoidDEMO</name>
  410.     <script>on openbackgroundlock screenset the scroll of field instructions to 0setupMiMenupass openbackgroundend openbackgroundon closebackgroundset cursor to watchlock screenreset menubarpass closebackgroundend closebackgroundon idleput hasMiRealBalloons() into tempput item 1 of temp into field rbfput item 2 of temp into field rbofpass idle  -- MUST BE PASSED!!end idle</script>
  411. </background>
  412.